package com.hello.system.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.hello.common.core.annotation.Excel;
import com.hello.common.core.web.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 支付平台配置对象 payment_config
 * 
 * @author hello
 * @date 2025-10-29
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class PaymentConfig extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 配置ID（主键） */
    private Long id;

    /** 支付平台（如alipay、wechat、apple等） */
    @Excel(name = "支付平台", readConverterExp = "如=alipay、wechat、apple等")
    private String platform;

    /** 配置项名称（如app_id、private_key、public_key等） */
    @Excel(name = "配置项名称", readConverterExp = "如=app_id、private_key、public_key等")
    private String configName;

    /** 配置项值 */
    @Excel(name = "配置项值")
    private String configValue;

    /** 配置项说明 */
    @Excel(name = "配置项说明")
    private String configDescription;

    /** 是否启用（0-禁用，1-启用） */
    @Excel(name = "是否启用", readConverterExp = "0=-禁用，1-启用")
    private Integer isActive;

    /** 环境（dev-开发，test-测试，prod-生产） */
    @Excel(name = "环境", readConverterExp = "d=ev-开发，test-测试，prod-生产")
    private String environment;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdAt;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedAt;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setPlatform(String platform) 
    {
        this.platform = platform;
    }

    public String getPlatform() 
    {
        return platform;
    }
    public void setConfigName(String configName) 
    {
        this.configName = configName;
    }

    public String getConfigName() 
    {
        return configName;
    }
    public void setConfigValue(String configValue) 
    {
        this.configValue = configValue;
    }

    public String getConfigValue() 
    {
        return configValue;
    }
    public void setConfigDescription(String configDescription) 
    {
        this.configDescription = configDescription;
    }

    public String getConfigDescription() 
    {
        return configDescription;
    }
    public void setIsActive(Integer isActive) 
    {
        this.isActive = isActive;
    }

    public Integer getIsActive() 
    {
        return isActive;
    }
    public void setEnvironment(String environment) 
    {
        this.environment = environment;
    }

    public String getEnvironment() 
    {
        return environment;
    }
    public void setCreatedAt(Date createdAt) 
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt() 
    {
        return createdAt;
    }
    public void setUpdatedAt(Date updatedAt) 
    {
        this.updatedAt = updatedAt;
    }

    public Date getUpdatedAt() 
    {
        return updatedAt;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("platform", getPlatform())
            .append("configName", getConfigName())
            .append("configValue", getConfigValue())
            .append("configDescription", getConfigDescription())
            .append("isActive", getIsActive())
            .append("environment", getEnvironment())
            .append("createdAt", getCreatedAt())
            .append("updatedAt", getUpdatedAt())
            .toString();
    }
}
